package com.ophiux.cs.domain.consultBase.repositories;

import com.ophiux.cs.domain.consultBase.model.entity.Hospital;
import com.ophiux.cs.domain.consultBase.model.valueobj.HospitalQueryObj;
import com.ophiux.utils.exception.OphiuxRepositoryException;

import java.util.List;

public interface IHospitalRepository {
	/**
	 * 新增医院
	 * @param hospital
	 * @throws OphiuxRepositoryException
	 */
	public void  createHospital(Hospital hospital) throws OphiuxRepositoryException;

	/**
	 * 更新医院
	 * @param hospital
	 * @throws OphiuxRepositoryException
	 */
	public void updateHospital(Hospital hospital) throws OphiuxRepositoryException ;

	/**
	 * 删除医院
	 * @param hospitalId
	 * @throws OphiuxRepositoryException
	 */
	public void deleteHospital(String hospitalId) throws OphiuxRepositoryException ;

	/**
	 * 查询所有医院
	 * @return
	 * @throws OphiuxRepositoryException
	 */
	public List<Hospital> selectHospital() throws OphiuxRepositoryException ;

	/**
	 * 根据医院ID查询
	 * @param hospitalId
	 * @return
	 * @throws OphiuxRepositoryException
	 */
	public Hospital getHospitalByHosID(String hospitalId) throws OphiuxRepositoryException ;
	/**
	 * 根据条件查询
	 * @param hospital
	 * @return
	 * @throws OphiuxRepositoryException
	 */
	public List<Hospital> getHospitalByConditions(HospitalQueryObj hospital) throws OphiuxRepositoryException ;
}
